package com.zhuo.project.k3.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.zhuo.common.utils.SecurityUtils;
import com.zhuo.project.k3.domain.ZzMaterialBarcode;
import com.zhuo.project.k3.mapper.ZzMaterialBarcodeMapper;
import com.zhuo.project.k3.service.IZzMaterialBarcodeService;

/**
 * 物料条码主档信息Service业务层处理
 *
 * @author ruoyi
 * @date 2020-03-18
 */
@Service
public class ZzMaterialBarcodeServiceImpl implements IZzMaterialBarcodeService {
    @Autowired
    private ZzMaterialBarcodeMapper zzMaterialBarcodeMapper;

    /**
     * 查询物料条码主档信息
     *
     * @param id 物料条码主档信息ID
     * @return 物料条码主档信息
     */
    @Override
    public ZzMaterialBarcode selectZzMaterialBarcodeById(Long id) {
        return zzMaterialBarcodeMapper.selectZzMaterialBarcodeById(id);
    }

    @Override
    public ZzMaterialBarcode selectZzMaterialBarcodeByBarCode(String barcode) {
        return zzMaterialBarcodeMapper.selectZzMaterialBarcodeByBarcode(barcode);
    }

    /**
     * 查询物料条码主档信息列表
     *
     * @param zzMaterialBarcode 物料条码主档信息
     * @return 物料条码主档信息
     */
    @Override
    public List<ZzMaterialBarcode> selectZzMaterialBarcodeList(ZzMaterialBarcode zzMaterialBarcode) {
        return zzMaterialBarcodeMapper.selectZzMaterialBarcodeList(zzMaterialBarcode);
    }

    /**
     * 新增物料条码主档信息
     *
     * @param zzMaterialBarcode 物料条码主档信息
     * @return 结果
     */
    @Override
    public int insertZzMaterialBarcode(ZzMaterialBarcode zzMaterialBarcode) {
        ZzMaterialBarcode filter = new ZzMaterialBarcode();
        filter.setFbarcode(zzMaterialBarcode.getFbarcode());
        List<ZzMaterialBarcode> filterList = zzMaterialBarcodeMapper.selectZzMaterialBarcodeList(filter);
        if (null != filterList && filterList.size() > 0) {
            Long id = filterList.get(0).getId();
            zzMaterialBarcode.setId(id);
            zzMaterialBarcode.setUpdateTime(new Date());
            zzMaterialBarcode.setUpdateBy(SecurityUtils.getUsername());
            return zzMaterialBarcodeMapper.updateZzMaterialBarcode(zzMaterialBarcode);
        }
        zzMaterialBarcode.setCreateBy(SecurityUtils.getUsername());
        zzMaterialBarcode.setCreateTime(new Date());
        return zzMaterialBarcodeMapper.insertZzMaterialBarcode(zzMaterialBarcode);
    }

    /**
     * 修改物料条码主档信息
     *
     * @param zzMaterialBarcode 物料条码主档信息
     * @return 结果
     */
    @Override
    public int updateZzMaterialBarcode(ZzMaterialBarcode zzMaterialBarcode) {
        return zzMaterialBarcodeMapper.updateZzMaterialBarcode(zzMaterialBarcode);
    }

    /**
     * 批量删除物料条码主档信息
     *
     * @param ids 需要删除的物料条码主档信息ID
     * @return 结果
     */
    @Override
    public int deleteZzMaterialBarcodeByIds(Long[] ids) {
        return zzMaterialBarcodeMapper.deleteZzMaterialBarcodeByIds(ids);
    }

    /**
     * 删除物料条码主档信息信息
     *
     * @param id 物料条码主档信息ID
     * @return 结果
     */
    @Override
    public int deleteZzMaterialBarcodeById(Long id) {
        return zzMaterialBarcodeMapper.deleteZzMaterialBarcodeById(id);
    }
}
